#include <bits/stdc++.h>
using namespace std;
const int maxn=2e5+5;
int read(){
    int x=0,f=1;
    char ch=getchar();
    while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
    while(ch>='0'&&ch<='9'){x=(x<<1)+(x<<3)+(ch^48);ch=getchar();}
    return x*f;
}
int n,a[maxn],k;
struct node{
    int l,r,value,pok;
}b[maxn];
long long ans=0;
int main(){
    freopen("color.in","r",stdin);
	freopen("color.out","w",stdout);
    int T;
    T=read();
    while(T--){
       n=read();
       k=0;
       ans=0;
       for(int i=1;i<=n;i++){
           a[i]=read();
       }
       for(int i=1;i<=n;i++){
           for(int j=i+1;j<=n;j++){
               if(a[i]==a[j]){
                   b[++k].l=i;
                   b[k].r=j;
                   b[k].value=a[i];
                   b[k].pok=1;
               }
           }
       }
        for(int i=1;i<=k;i++){
            for(int j=i+1;j<=k;j++){
                if(b[i].l<=b[j].l&&b[i].r>=b[j].r&&b[i].pok==1&&b[j].pok==1){
                    if(b[i].value>=b[j].value){
                        b[j].pok=0;
                    }else{
                        b[i].pok=0;
                    }
                }
            }
        }
        for(int i=1;i<=k;i++){
            if(b[i].pok==1){
                ans+=b[i].value;
            }
        }
        printf("%lld\n",ans);
    }
    return 0;
}
